ace.define("ace/keyboard/vim",["require","exports","module","ace/keyboard/vim/commands","ace/keyboard/vim/maps/util","ace/lib/useragent"],function(e,t,n){var o=e("./vim/commands"),i=o.coreCommands,s=e("./vim/maps/util"),r=e("../lib/useragent"),a={i:{command:i.start},I:{command:i.startBeginning},a:{command:i.append},A:{command:i.appendEnd},"ctrl-f":{command:"gotopagedown"},"ctrl-b":{command:"gotopageup"}};t.handler={$id:"ace/keyboard/vim",handleMacRepeat:function(e,t,n){if(-1==t)e.inputChar=n,e.lastEvent="input";else if(e.inputChar&&e.$lastHash==t&&e.$lastKey==n){if("input"==e.lastEvent)e.lastEvent="input1";else if("input1"==e.lastEvent)return!0}else e.$lastHash=t,e.$lastKey=n,e.lastEvent="keypress"},updateMacCompositionHandlers:function(e,t){var n=function(e){if("insert"!==s.currentMode){var t=this.textInput.getElement();t.blur(),t.focus(),t.value=e}else this.onCompositionUpdateOrig(e)},o=function(e){"insert"===s.currentMode&&this.onCompositionStartOrig(e)};t?e.onCompositionUpdateOrig||(e.onCompositionUpdateOrig=e.onCompositionUpdate,e.onCompositionUpdate=n,e.onCompositionStartOrig=e.onCompositionStart,e.onCompositionStart=o):e.onCompositionUpdateOrig&&(e.onCompositionUpdate=e.onCompositionUpdateOrig,e.onCompositionUpdateOrig=null,e.onCompositionStart=e.onCompositionStartOrig,e.onCompositionStartOrig=null)},handleKeyboard:function(e,t,n,s,c){if(0!==t&&(!n||-1==s))return null;var l=e.editor,u=e.vimState||"start";if(1==t&&(n="ctrl-"+n),"ctrl-c"==n)return!r.isMac&&l.getCopyText()?(l.once("copy",function(){"start"==u?i.stop.exec(l):l.selection.clearSelection()}),{command:"null",passEvent:!0}):{command:i.stop};if("esc"==n&&0===t||"ctrl-["==n)return{command:i.stop};if("start"==u){if(r.isMac&&this.handleMacRepeat(e,t,n)&&(t=-1,n=e.inputChar),-1==t||1==t||0===t&&n.length>1){if(o.inputBuffer.idle&&a[n])return a[n];var d=o.inputBuffer.push(l,n);if(!d&&-1!==t)return;return{command:"null",passEvent:!d}}if("esc"==n&&0===t)return{command:i.stop};if(0===t||4==t)return{command:"null",passEvent:!0}}else if("ctrl-w"==n)return{command:"removewordleft"}},attach:function(e){e.on("click",t.onCursorMove),"insert"!==s.currentMode&&o.coreCommands.stop.exec(e),e.$vimModeHandler=this,this.updateMacCompositionHandlers(e,!0)},detach:function(e){e.removeListener("click",t.onCursorMove),s.noMode(e),s.currentMode="normal",this.updateMacCompositionHandlers(e,!1)},actions:o.actions,getStatusText:function(){return"insert"==s.currentMode?"INSERT":s.onVisualMode?(s.onVisualLineMode?"VISUAL LINE ":"VISUAL ")+o.inputBuffer.status:o.inputBuffer.status}},t.onCursorMove=function(e){o.onCursorMove(e.editor,e),t.onCursorMove.scheduled=!1}}),ace.define("ace/keyboard/vim/commands",["require","exports","module","ace/lib/lang","ace/keyboard/vim/maps/util","ace/keyboard/vim/maps/motions","ace/keyboard/vim/maps/operators","ace/keyboard/vim/maps/aliases","ace/keyboard/vim/registers"],function(e,t,n){"never use strict";function o(e){w.previous={action:{action:{fn:e}}}}var i=e("../../lib/lang"),s=e("./maps/util"),r=e("./maps/motions"),a=e("./maps/operators"),c=e("./maps/aliases"),l=e("./registers"),u=1,d=2,m=3,f=4,g=8,h=function(e,t,n){for(;0<t--;)e.apply(this,n)},p=function(e){var t=e.renderer,n=t.$cursorLayer.getPixelPosition(),o=n.top,i=g*t.layerConfig.lineHeight;2*i>t.$size.scrollerHeight&&(i=t.$size.scrollerHeight/2),t.scrollTop>o-i&&t.session.setScrollTop(o-i),t.scrollTop+t.$size.scrollerHeight<o+i+t.lineHeight&&t.session.setScrollTop(o+i+t.lineHeight-t.$size.scrollerHeight)},v=t.actions={z:{param:!0,fn:function(e,t,n,o){switch(o){case"z":e.renderer.alignCursor(null,.5);break;case"t":e.renderer.alignCursor(null,0);break;case"b":e.renderer.alignCursor(null,1);break;case"c":e.session.onFoldWidgetClick(t.start.row,{domEvent:{target:{}}});break;case"o":e.session.onFoldWidgetClick(t.start.row,{domEvent:{target:{}}});break;case"C":e.session.foldAll();break;case"O":e.session.unfold()}}},r:{param:!0,fn:function(e,t,n,o){o&&o.length&&(o.length>1&&(o="return"==o?"\n":"tab"==o?"	":o),h(function(){e.insert(o)},n||1),e.navigateLeft())}},R:{fn:function(e,t,n,o){s.insertMode(e),e.setOverwrite(!0)}},"~":{fn:function(e,t,n){h(function(){var t=e.selection.getRange();t.isEmpty()&&t.end.column++;var n=e.session.getTextRange(t),o=n.toUpperCase();o!=n?e.session.replace(t,o):n.toLowerCase()!=n?e.session.replace(t,n.toLowerCase()):e.navigateRight()},n||1)}},"*":{fn:function(e,t,n,o){e.selection.selectWord(),e.findNext(),p(e);var i=e.selection.getRange();e.selection.setSelectionRange(i,!0)}},"#":{fn:function(e,t,n,o){e.selection.selectWord(),e.findPrevious(),p(e);var i=e.selection.getRange();e.selection.setSelectionRange(i,!0)}},m:{param:!0,fn:function(e,t,n,o){var i=e.session,s=i.vimMarkers||(i.vimMarkers={}),r=e.getCursorPosition();s[o]||(s[o]=e.session.doc.createAnchor(r)),s[o].setPosition(r.row,r.column,!0)}},n:{fn:function(e,t,n,o){var i=e.getLastSearchOptions();i.backwards=!1,i.start=null,e.selection.moveCursorRight(),e.selection.clearSelection(),e.findNext(i),p(e);var s=e.selection.getRange();s.end.row=s.start.row,s.end.column=s.start.column,e.selection.setSelectionRange(s,!0)}},N:{fn:function(e,t,n,o){var i=e.getLastSearchOptions();i.backwards=!0,i.start=null,e.findPrevious(i),p(e);var s=e.selection.getRange();s.end.row=s.start.row,s.end.column=s.start.column,e.selection.setSelectionRange(s,!0)}},v:{fn:function(e,t,n,o){e.selection.selectRight(),s.visualMode(e,!1)},acceptsMotion:!0},V:{fn:function(e,t,n,o){var i=e.getCursorPosition().row;e.selection.moveTo(i,0),e.selection.selectLineEnd(),e.selection.visualLineStart=i,s.visualMode(e,!0)},acceptsMotion:!0},Y:{fn:function(e,t,n,o){s.copyLine(e)}},p:{fn:function(e,t,n,o){var s=l._default;if(e.setOverwrite(!1),s.isLine){var r=e.getCursorPosition();r.column=e.session.getLine(r.row).length;var a=i.stringRepeat("\n"+s.text,n||1);e.session.insert(r,a),e.moveCursorTo(r.row+1,0)}else e.navigateRight(),e.insert(i.stringRepeat(s.text,n||1)),e.navigateLeft();e.setOverwrite(!0),e.selection.clearSelection()}},P:{fn:function(e,t,n,o){var s=l._default;if(e.setOverwrite(!1),s.isLine){var r=e.getCursorPosition();r.column=0;var a=i.stringRepeat(s.text+"\n",n||1);e.session.insert(r,a),e.moveCursorToPosition(r)}else e.insert(i.stringRepeat(s.text,n||1));e.setOverwrite(!0),e.selection.clearSelection()}},J:{fn:function(e,t,n,o){var i=e.session;t=e.getSelectionRange();var s={row:t.start.row,column:t.start.column};n=n||t.end.row-t.start.row;var r=Math.min(s.row+(n||1),i.getLength()-1);t.start.column=i.getLine(s.row).length,t.end.column=i.getLine(r).length,t.end.row=r;for(var a="",c=s.row;r>c;c++){var l=i.getLine(c+1);a+=" "+/^\s*(.*)$/.exec(l)[1]||""}i.replace(t,a),e.moveCursorTo(s.row,s.column)}},u:{fn:function(e,t,n,o){n=parseInt(n||1,10);for(var i=0;n>i;i++)e.undo();e.selection.clearSelection()}},"ctrl-r":{fn:function(e,t,n,o){n=parseInt(n||1,10);for(var i=0;n>i;i++)e.redo();e.selection.clearSelection()}},":":{fn:function(e,t,n,o){var i=":";n>1&&(i=".,.+"+n+i),e.showCommandLine&&e.showCommandLine(i)}},"/":{fn:function(e,t,n,o){e.showCommandLine&&e.showCommandLine("/")}},"?":{fn:function(e,t,n,o){e.showCommandLine&&e.showCommandLine("?")}},".":{fn:function(e,t,n,o){s.onInsertReplaySequence=w.lastInsertCommands;var i=w.previous;i&&w.exec(e,i.action,i.param)}},"ctrl-x":{fn:function(e,t,n,o){e.modifyNumber(-(n||1))}},"ctrl-a":{fn:function(e,t,n,o){e.modifyNumber(n||1)}}},w=t.inputBuffer={accepting:[u,d,m,f],currentCmd:null,currentCount:"",pendingCount:"",status:"",operator:null,motion:null,lastInsertCommands:[],push:function(e,t,n){var o=this.status,i=!0;this.idle=!1;var s=this.waitingForParam;if(/^numpad\d+$/i.test(t)&&(t=t.substr(6)),s)this.exec(e,s,t);else if(("0"!==t||this.currentCount.length)&&/^\d+$/.test(t)&&this.isAccepting(u))this.currentCount+=t,this.currentCmd=u,this.accepting=[u,d,m,f];else if(!this.operator&&this.isAccepting(d)&&a[t])this.operator={ch:t,count:this.getCount()},this.currentCmd=d,this.accepting=[u,m,f],this.exec(e,{operator:this.operator});else if(r[t]&&this.isAccepting(m)){this.currentCmd=m;var l={operator:this.operator,motion:{ch:t,count:this.getCount()}};r[t].param?this.waitForParam(l):this.exec(e,l)}else if(c[t]&&this.isAccepting(m))c[t].operator.count=this.getCount(),this.exec(e,c[t]);else if(v[t]&&this.isAccepting(f)){var g={action:{fn:v[t].fn,count:this.getCount()}};v[t].param?this.waitForParam(g):this.exec(e,g),v[t].acceptsMotion&&(this.idle=!1)}else this.operator?(this.operator.count=this.getCount(),this.exec(e,{operator:this.operator},t)):(i=1==t.length,this.reset());return this.waitingForParam||this.motion||this.operator?this.status+=t:this.currentCount?this.status=this.currentCount:this.status&&(this.status=""),this.status!=o&&e._emit("changeStatus"),i},waitForParam:function(e){this.waitingForParam=e},getCount:function(){var e=this.currentCount||this.pendingCount;return this.currentCount="",this.pendingCount=e,e&&parseInt(e,10)},exec:function(e,t,n){var o=t.motion,i=t.operator,c=t.action;if(n||(n=t.param),i&&(this.previous={action:t,param:n}),i&&!e.selection.isEmpty())return void(a[i.ch].selFn&&(a[i.ch].selFn(e,e.getSelectionRange(),i.count,n),this.reset()));if(!o&&!c&&i&&n)a[i.ch].fn(e,null,i.count,n),this.reset();else if(o){var l=function(t){t&&"function"==typeof t&&(o.count&&!u.handlesCount?h(t,o.count,[e,null,o.count,n]):t(e,null,o.count,n))},u=r[o.ch],d=u.sel;i?d&&h(function(){l(u.sel),a[i.ch].fn(e,e.getSelectionRange(),i.count,u.param?u:n)},i.count||1):l((s.onVisualMode||s.onVisualLineMode)&&d?u.sel:u.nav),this.reset()}else c&&(c.fn(e,e.getSelectionRange(),c.count,n),this.reset());C(e)},isAccepting:function(e){return-1!==this.accepting.indexOf(e)},reset:function(){this.operator=null,this.motion=null,this.currentCount="",this.pendingCount="",this.status="",this.accepting=[u,d,m,f],this.idle=!0,this.waitingForParam=null}};t.coreCommands={start:{exec:function L(e){s.insertMode(e),o(L)}},startBeginning:{exec:function x(e){e.navigateLineStart(),s.insertMode(e),o(x)}},stop:{exec:function(e){w.reset(),s.onVisualMode=!1,s.onVisualLineMode=!1,w.lastInsertCommands=s.normalMode(e)}},append:{exec:function S(e){var t=e.getCursorPosition(),n=e.session.getLine(t.row).length;n&&e.navigateRight(),s.insertMode(e),o(S)}},appendEnd:{exec:function M(e){e.navigateLineEnd(),s.insertMode(e),o(M)}}};var C=t.onCursorMove=function(e,t){if("insert"!==s.currentMode&&!C.running){if(!e.selection.isEmpty()){if(C.running=!0,s.onVisualLineMode){var n=e.selection.visualLineStart,o=e.getCursorPosition().row;if(o>=n){var i=e.session.getLine(o);e.selection.moveTo(n,0),e.selection.selectTo(o,i.length)}else{var i=e.session.getLine(n);e.selection.moveTo(n,i.length),e.selection.selectTo(o,0)}}return void(C.running=!1)}t&&(s.onVisualLineMode||s.onVisualMode)&&(e.selection.clearSelection(),s.normalMode(e)),C.running=!0;var r=e.getCursorPosition(),a=e.session.getLine(r.row).length;a&&r.column===a&&e.navigateLeft(),C.running=!1}}}),ace.define("ace/keyboard/vim/maps/util",["require","exports","module","ace/keyboard/vim/registers","ace/lib/dom"],function(e,t,n){var o=e("../registers"),i=e("../../../lib/dom");i.importCssString(".insert-mode .ace_cursor{    border-left: 2px solid #333333;}.ace_dark.insert-mode .ace_cursor{    border-left: 2px solid #eeeeee;}.normal-mode .ace_cursor{    border: 0!important;    background-color: red;    opacity: 0.5;}","vimMode"),n.exports={onVisualMode:!1,onVisualLineMode:!1,currentMode:"normal",noMode:function(e){e.unsetStyle("insert-mode"),e.unsetStyle("normal-mode"),e.commands.recording&&e.commands.toggleRecording(e),e.setOverwrite(!1)},insertMode:function(e){this.currentMode="insert",e.setStyle("insert-mode"),e.unsetStyle("normal-mode"),e.setOverwrite(!1),e.keyBinding.$data.buffer="",e.keyBinding.$data.vimState="insertMode",this.onVisualMode=!1,this.onVisualLineMode=!1,this.onInsertReplaySequence?(e.commands.macro=this.onInsertReplaySequence,e.commands.replay(e),this.onInsertReplaySequence=null,this.normalMode(e)):(e._emit("changeStatus"),e.commands.recording||e.commands.toggleRecording(e))},normalMode:function(e){this.currentMode="normal",e.unsetStyle("insert-mode"),e.setStyle("normal-mode"),e.clearSelection();var t;return e.getOverwrite()||(t=e.getCursorPosition(),t.column>0&&e.navigateLeft()),e.setOverwrite(!0),e.keyBinding.$data.buffer="",e.keyBinding.$data.vimState="start",this.onVisualMode=!1,this.onVisualLineMode=!1,e._emit("changeStatus"),e.commands.recording?(e.commands.toggleRecording(e),e.commands.macro):[]},visualMode:function(e,t){return this.onVisualLineMode&&t||this.onVisualMode&&!t?void this.normalMode(e):(e.setStyle("insert-mode"),e.unsetStyle("normal-mode"),e._emit("changeStatus"),t?this.onVisualLineMode=!0:(this.onVisualMode=!0,this.onVisualLineMode=!1),void 0)},getRightNthChar:function(e,t,n,o){var i=e.getSession().getLine(t.row),s=i.substr(t.column+1).split(n);return o<s.length?s.slice(0,o).join(n).length:null},getLeftNthChar:function(e,t,n,o){var i=e.getSession().getLine(t.row),s=i.substr(0,t.column).split(n);return o<s.length?s.slice(-1*o).join(n).length:null},toRealChar:function(e){return 1===e.length?e:/^shift-./.test(e)?e[e.length-1].toUpperCase():""},copyLine:function(e){var t=e.getCursorPosition();e.selection.moveTo(t.row,t.column),e.selection.selectLine(),o._default.isLine=!0,o._default.text=e.getCopyText().replace(/\n$/,""),e.selection.moveTo(t.row,t.column)}}}),ace.define("ace/keyboard/vim/registers",["require","exports","module"],function(e,t,n){"never use strict";n.exports={_default:{text:"",isLine:!1}}}),ace.define("ace/keyboard/vim/maps/motions",["require","exports","module","ace/keyboard/vim/maps/util","ace/search","ace/range"],function(e,t,n){function o(e){if("function"==typeof e){var t=e;e=this}else var t=e.getPos;return e.nav=function(e,n,o,i){var s=t(e,n,o,i,!1);s&&e.selection.moveTo(s.row,s.column)},e.sel=function(e,n,o,i){var s=t(e,n,o,i,!0);s&&e.selection.selectTo(s.row,s.column)},e}function i(e,t,n){return m.$options.needle=t,m.$options.backwards=-1==n,m.find(e.session)}var s=e("./util"),r=function(e,t){var n=e.renderer.getScrollTopRow(),o=e.getCursorPosition().row,i=o-n;t&&t.call(e),e.renderer.scrollToRow(e.getCursorPosition().row-i)},a=/[\s.\/\\()\"'-:,.;<>~!@#$%^&*|+=\[\]{}`~?]/,c=/[.\/\\()\"'-:,.;<>~!@#$%^&*|+=\[\]{}`~?]/,l=/\s/,u=function(e,t){var n=e.selection;this.range=n.getRange(),t=t||n.selectionLead,this.row=t.row,this.col=t.column;var o=e.session.getLine(this.row),i=e.session.getLength();this.ch=o[this.col]||"\n",this.skippedLines=0,this.next=function(){return this.ch=o[++this.col]||this.handleNewLine(1),this.ch},this.prev=function(){return this.ch=o[--this.col]||this.handleNewLine(-1),this.ch},this.peek=function(t){var n=o[this.col+t];return n?n:-1==t?"\n":this.col==o.length-1?"\n":e.session.getLine(this.row+1)[0]||"\n"},this.handleNewLine=function(t){return 1==t?this.col==o.length?"\n":this.row==i-1?"":(this.col=0,this.row++,o=e.session.getLine(this.row),this.skippedLines++,o[0]||"\n"):-1==t?0===this.row?"":(this.row--,o=e.session.getLine(this.row),this.col=o.length,this.skippedLines--,"\n"):void 0},this.debug=function(){console.log(o.substring(0,this.col)+"|"+this.ch+"'"+this.col+"'"+o.substr(this.col+1))}},d=e("../../../search").Search,m=new d,f=e("../../../range").Range,g={};n.exports={w:new o(function(e){var t=new u(e);if(t.ch&&c.test(t.ch))for(;t.ch&&c.test(t.ch);)t.next();else for(;t.ch&&!a.test(t.ch);)t.next();for(;t.ch&&l.test(t.ch)&&t.skippedLines<2;)t.next();return 2==t.skippedLines&&t.prev(),{column:t.col,row:t.row}}),W:new o(function(e){for(var t=new u(e);t.ch&&(!l.test(t.ch)||l.test(t.peek(1)))&&t.skippedLines<2;)t.next();return 2==t.skippedLines?t.prev():t.next(),{column:t.col,row:t.row}}),b:new o(function(e){var t=new u(e);for(t.prev();t.ch&&l.test(t.ch)&&t.skippedLines>-2;)t.prev();if(t.ch&&c.test(t.ch))for(;t.ch&&c.test(t.ch);)t.prev();else for(;t.ch&&!a.test(t.ch);)t.prev();return t.ch&&t.next(),{column:t.col,row:t.row}}),B:new o(function(e){var t=new u(e);for(t.prev();t.ch&&(l.test(t.ch)||!l.test(t.peek(-1)))&&t.skippedLines>-2;)t.prev();return-2==t.skippedLines&&t.next(),{column:t.col,row:t.row}}),e:new o(function(e){var t=new u(e);for(t.next();t.ch&&l.test(t.ch);)t.next();if(t.ch&&c.test(t.ch))for(;t.ch&&c.test(t.ch);)t.next();else for(;t.ch&&!a.test(t.ch);)t.next();return t.ch&&t.prev(),{column:t.col,row:t.row}}),E:new o(function(e){var t=new u(e);for(t.next();t.ch&&(l.test(t.ch)||!l.test(t.peek(1)));)t.next();return{column:t.col,row:t.row}}),l:{nav:function(e){var t=e.getCursorPosition(),n=t.column,o=e.session.getLine(t.row).length;o&&n!==o&&e.navigateRight()},sel:function(e){var t=e.getCursorPosition(),n=t.column,o=e.session.getLine(t.row).length;o&&n!==o&&e.selection.selectRight()}},h:{nav:function(e){var t=e.getCursorPosition();t.column>0&&e.navigateLeft()},sel:function(e){var t=e.getCursorPosition();t.column>0&&e.selection.selectLeft()}},H:{nav:function(e){var t=e.renderer.getScrollTopRow();e.moveCursorTo(t)},sel:function(e){var t=e.renderer.getScrollTopRow();e.selection.selectTo(t)}},M:{nav:function(e){var t=e.renderer.getScrollTopRow(),n=e.renderer.getScrollBottomRow(),o=t+(n-t)/2;e.moveCursorTo(o)},sel:function(e){var t=e.renderer.getScrollTopRow(),n=e.renderer.getScrollBottomRow(),o=t+(n-t)/2;e.selection.selectTo(o)}},L:{nav:function(e){var t=e.renderer.getScrollBottomRow();e.moveCursorTo(t)},sel:function(e){var t=e.renderer.getScrollBottomRow();e.selection.selectTo(t)}},k:{nav:function(e){e.navigateUp()},sel:function(e){e.selection.selectUp()}},j:{nav:function(e){e.navigateDown()},sel:function(e){e.selection.selectDown()}},i:{param:!0,sel:function(e,t,n,o){switch(o){case"w":e.selection.selectWord();break;case"W":e.selection.selectAWord();break;case"(":case"{":case"[":var s=e.getCursorPosition(),r=e.session.$findClosingBracket(o,s,/paren/);if(!r)return;var a=e.session.$findOpeningBracket(e.session.$brackets[o],s,/paren/);if(!a)return;a.column++,e.selection.setSelectionRange(f.fromPoints(a,r));break;case"'":case'"':case"/":var r=i(e,o,1);if(!r)return;var a=i(e,o,-1);if(!a)return;e.selection.setSelectionRange(f.fromPoints(a.end,r.start))}}},a:{param:!0,sel:function(e,t,n,o){switch(o){case"w":e.selection.selectAWord();break;case"W":e.selection.selectAWord();break;case")":case"}":case"]":o=e.session.$brackets[o];case"(":case"{":case"[":var s=e.getCursorPosition(),r=e.session.$findClosingBracket(o,s,/paren/);if(!r)return;var a=e.session.$findOpeningBracket(e.session.$brackets[o],s,/paren/);if(!a)return;r.column++,e.selection.setSelectionRange(f.fromPoints(a,r));break;case"'":case'"':case"/":var r=i(e,o,1);if(!r)return;var a=i(e,o,-1);if(!a)return;r.column++,e.selection.setSelectionRange(f.fromPoints(a.start,r.end))}}},f:new o({param:!0,handlesCount:!0,getPos:function(e,t,n,o,i,r){"space"==o&&(o=" "),r||(g={ch:"f",param:o});var a=e.getCursorPosition(),c=s.getRightNthChar(e,a,o,n||1);return"number"==typeof c?(a.column+=c+(i?2:1),a):void 0}}),F:new o({param:!0,handlesCount:!0,getPos:function(e,t,n,o,i,r){"space"==o&&(o=" "),r||(g={ch:"F",param:o});var a=e.getCursorPosition(),c=s.getLeftNthChar(e,a,o,n||1);return"number"==typeof c?(a.column-=c+1,a):void 0}}),t:new o({param:!0,handlesCount:!0,getPos:function(e,t,n,o,i,r){"space"==o&&(o=" "),r||(g={ch:"t",param:o});var a=e.getCursorPosition(),c=s.getRightNthChar(e,a,o,n||1);if(r&&0==c&&!(n>1))var c=s.getRightNthChar(e,a,o,2);return"number"==typeof c?(a.column+=c+(i?1:0),a):void 0}}),T:new o({param:!0,handlesCount:!0,getPos:function(e,t,n,o,i,r){"space"==o&&(o=" "),r||(g={ch:"T",param:o});var a=e.getCursorPosition(),c=s.getLeftNthChar(e,a,o,n||1);if(r&&0==c&&!(n>1))var c=s.getLeftNthChar(e,a,o,2);return"number"==typeof c?(a.column-=c,a):void 0}}),";":new o({handlesCount:!0,getPos:function(e,t,o,i,s){var r=g.ch;if(r)return n.exports[r].getPos(e,t,o,g.param,s,!0)}}),",":new o({handlesCount:!0,getPos:function(e,t,o,i,s){var r=g.ch;if(r){var a=r.toUpperCase();return r=r===a?r.toLowerCase():a,n.exports[r].getPos(e,t,o,g.param,s,!0)}}}),"^":{nav:function(e){e.navigateLineStart()},sel:function(e){e.selection.selectLineStart()}},$:{handlesCount:!0,nav:function(e,t,n,o){n>1&&e.navigateDown(n-1),e.navigateLineEnd()},sel:function(e,t,n,o){n>1&&e.selection.moveCursorBy(n-1,0),e.selection.selectLineEnd()}},0:new o(function(e){return{row:e.selection.lead.row,column:0}}),G:{nav:function(e,t,n,o){!n&&0!==n&&(n=e.session.getLength()),e.gotoLine(n)},sel:function(e,t,n,o){!n&&0!==n&&(n=e.session.getLength()),e.selection.selectTo(n,0)}},g:{param:!0,nav:function(e,t,n,o){switch(o){case"m":console.log("Middle line");break;case"e":console.log("End of prev word");break;case"g":e.gotoLine(n||0);case"u":e.gotoLine(n||0);case"U":e.gotoLine(n||0)}},sel:function(e,t,n,o){switch(o){case"m":console.log("Middle line");break;case"e":console.log("End of prev word");break;case"g":e.selection.selectTo(n||0,0)}}},o:{nav:function(e,t,n,o){n=n||1;for(var i="";0<n--;)i+="\n";i.length&&(e.navigateLineEnd(),e.insert(i),s.insertMode(e))}},O:{nav:function(e,t,n,o){var i=e.getCursorPosition().row;n=n||1;for(var r="";0<n--;)r+="\n";r.length&&(i>0?(e.navigateUp(),e.navigateLineEnd(),e.insert(r)):(e.session.insert({row:0,column:0},r),e.navigateUp()),s.insertMode(e))}},"%":new o(function(e){var t=/[\[\]{}()]/g,n=e.getCursorPosition(),o=e.session.getLine(n.row)[n.column];if(!t.test(o)){var s=i(e,t);if(!s)return;n=s.start}var r=e.session.findMatchingBracket({row:n.row,column:n.column+1});return r}),"{":new o(function(e){for(var t=e.session,n=t.selection.lead.row;n>0&&!/\S/.test(t.getLine(n));)n--;for(;/\S/.test(t.getLine(n));)n--;return{column:0,row:n}}),"}":new o(function(e){for(var t=e.session,n=t.getLength(),o=t.selection.lead.row;n>o&&!/\S/.test(t.getLine(o));)o++;for(;/\S/.test(t.getLine(o));)o++;return{column:0,row:o}}),"ctrl-d":{nav:function(e,t,n,o){e.selection.clearSelection(),r(e,e.gotoPageDown)},sel:function(e,t,n,o){r(e,e.selectPageDown)}},"ctrl-u":{nav:function(e,t,n,o){e.selection.clearSelection(),r(e,e.gotoPageUp)},sel:function(e,t,n,o){r(e,e.selectPageUp)}},"`":new o({param:!0,handlesCount:!0,getPos:function(e,t,n,o,i){var s=e.session,r=s.vimMarkers&&s.vimMarkers[o];return r?r.getPosition():void 0}}),"'":new o({param:!0,handlesCount:!0,getPos:function(e,t,n,o,i){var s=e.session,r=s.vimMarkers&&s.vimMarkers[o];if(r){var a=r.getPosition(),c=e.session.getLine(a.row);return a.column=c.search(/\S/),-1==a.column&&(a.column=c.length),a}},isLine:!0})},n.exports.backspace=n.exports.left=n.exports.h,n.exports.space=n.exports["return"]=n.exports.right=n.exports.l,n.exports.up=n.exports.k,n.exports.down=n.exports.j,n.exports.pagedown=n.exports["ctrl-d"],n.exports.pageup=n.exports["ctrl-u"],n.exports.home=n.exports[0],n.exports.end=n.exports.$}),ace.define("ace/keyboard/vim/maps/operators",["require","exports","module","ace/keyboard/vim/maps/util","ace/keyboard/vim/registers"],function(e,t,n){var o=e("./util"),i=e("../registers");n.exports={d:{selFn:function(e,t,n,s){i._default.text=e.getCopyText(),i._default.isLine=o.onVisualLineMode,o.onVisualLineMode?e.removeLines():e.session.remove(t),o.normalMode(e)},fn:function(e,t,n,o){switch(n=n||1,o){case"d":i._default.text="",i._default.isLine=!0;for(var s=0;n>s;s++){e.selection.selectLine(),i._default.text+=e.getCopyText();var r=e.getSelectionRange();if(!r.isMultiLine()){var a=r.start.row-1,c=e.session.getLine(a).length;r.setStart(a,c),e.session.remove(r),e.selection.clearSelection();break}e.session.remove(r),e.selection.clearSelection()}i._default.text=i._default.text.replace(/\n$/,"");break;default:t&&(e.selection.setSelectionRange(t),i._default.text=e.getCopyText(),i._default.isLine=!1,e.session.remove(t),e.selection.clearSelection())}}},c:{selFn:function(e,t,n,i){e.session.remove(t),o.insertMode(e)},fn:function(e,t,n,i){switch(n=n||1,i){case"c":for(var s=0;n>s;s++)e.removeLines(),o.insertMode(e);break;default:t&&(e.session.remove(t),o.insertMode(e))}}},y:{selFn:function(e,t,n,s){i._default.text=e.getCopyText(),i._default.isLine=o.onVisualLineMode,e.selection.clearSelection(),o.normalMode(e)},fn:function(e,t,n,o){switch(n=n||1,o&&o.isLine&&(o="y"),o){case"y":var s=e.getCursorPosition();e.selection.selectLine();for(var r=0;n-1>r;r++)e.selection.moveCursorDown();i._default.text=e.getCopyText().replace(/\n$/,""),e.selection.clearSelection(),i._default.isLine=!0,e.moveCursorToPosition(s);break;default:if(t){var s=e.getCursorPosition();e.selection.setSelectionRange(t),i._default.text=e.getCopyText(),i._default.isLine=!1,e.selection.clearSelection(),e.moveCursorTo(s.row,s.column)}}}},">":{selFn:function(e,t,n,i){n=n||1;for(var s=0;n>s;s++)e.indent();o.normalMode(e)},fn:function(e,t,n,o){switch(n=parseInt(n||1,10),o){case">":var i=e.getCursorPosition();e.selection.selectLine();for(var s=0;n-1>s;s++)e.selection.moveCursorDown();e.indent(),e.selection.clearSelection(),e.moveCursorToPosition(i),e.navigateLineEnd(),e.navigateLineStart()}}},"<":{selFn:function(e,t,n,i){n=n||1;for(var s=0;n>s;s++)e.blockOutdent();o.normalMode(e)},fn:function(e,t,n,o){switch(n=n||1,o){case"<":var i=e.getCursorPosition();e.selection.selectLine();for(var s=0;n-1>s;s++)e.selection.moveCursorDown();e.blockOutdent(),e.selection.clearSelection(),e.moveCursorToPosition(i),e.navigateLineEnd(),e.navigateLineStart()}}}}}),ace.define("ace/keyboard/vim/maps/aliases",["require","exports","module"],function(e,t,n){n.exports={x:{operator:{ch:"d",count:1},motion:{ch:"l",count:1}},X:{operator:{ch:"d",count:1},motion:{ch:"h",count:1}},D:{operator:{ch:"d",count:1},motion:{ch:"$",count:1}},C:{operator:{ch:"c",count:1},motion:{ch:"$",count:1}},s:{operator:{ch:"c",count:1},motion:{ch:"l",count:1}},S:{operator:{ch:"c",count:1},param:"c"}}});